package com.wyw.hemerocallis.service;

import com.wyw.hemerocallis.vo.UsernameAndPassword;

/**
 * JWT 相关服务接口
 *
 * @author Mr Wu    yewen.wu.china@gmail.com
 * <p>
 * Update History:
 * Author        Time            Content
 */
public interface IJWTService {
    /**
     * 生成JWT Token，使用默认的超时时间
     * @param username
     * @param password
     * @return
     * @throws Exception
     */
    String generateToken(String username, String password) throws Exception;

    /**
     * 使用指定超时时间的Token，单位是天
     * @param username
     * @param password
     * @param expireDay
     * @return
     * @throws Exception
     */
    String generateToken(String username, String password, int expireDay) throws Exception;

    /**
     * 注册用户并生成且返回token
     * @param usernameAndPassword
     * @return
     */
    String registerUserAndGenerateToken(UsernameAndPassword usernameAndPassword) throws Exception;
}
